/**
 * 通用业务逻辑辅助工具
 */

/**
 * 格式化显示状态
 * @param {Number} status 状态码
 * @param {Array} statusList 状态列表
 * @returns {String} 格式化后的状态文本
 */
function formatStatus(status, statusList) {
  if (!statusList || !Array.isArray(statusList)) return String(status);
  
  const item = statusList.find(s => s.value === status);
  return item ? item.label : String(status);
}

/**
 * 初始化下拉选择框数据
 * @param {Array} dataList 原始数据列表
 * @param {String} valueField 值字段名
 * @param {String} labelField 标签字段名
 * @returns {Array} 格式化后的选择项列表
 */
function initOptions(dataList, valueField = 'id', labelField = 'name') {
  if (!dataList || !Array.isArray(dataList)) return [];
  
  return dataList.map(item => ({
    value: item[valueField],
    label: item[labelField]
  }));
}

/**
 * 从下拉选项中获取标签文本
 * @param {Array} options 选项列表
 * @param {String|Number} value 选项值
 * @returns {String} 对应的标签文本
 */
function getLabel(options, value) {
  if (!options || !Array.isArray(options)) return '';
  
  const item = options.find(option => option.value === value);
  return item ? item.label : '';
}

/**
 * 格式化项目路径
 * @param {Array} pathNodes 路径节点列表
 * @returns {String} 格式化后的路径文本
 */
function formatPath(pathNodes) {
  if (!pathNodes || !Array.isArray(pathNodes)) return '';
  
  return pathNodes.map(node => node.name).join(' > ');
}

module.exports = {
  formatStatus,
  initOptions,
  getLabel,
  formatPath
}; 